package cn.cloud9.designpattern.dp03prototype;

/**
 * @author OnCloud9
 * @description
 *  如果单例类实现了Cloneable接口，则需要这样处理
 *  单例和克隆本身就是互斥的，不可以兼容
 * @project Java
 * @date 2022年05月22日 17:30
 */
public class PrototypeWithSingleton implements Cloneable {

    private PrototypeWithSingleton() {}

    private final static PrototypeWithSingleton INSTANCE = new PrototypeWithSingleton();

    public static PrototypeWithSingleton getInstance() {
        return INSTANCE;
    }

    /**
     * 克隆方法直接返回这个单例
     * @return
     */
    @Override
    public PrototypeWithSingleton clone() {
        return INSTANCE;
    }
}
